1. Field of the Invention
This invention relates to the field of data processing systems. More particularly, this invention relates to error recovery in data processing systems.
2. Description of the Prior Art
It is known to provide data processing systems capable of handling errors in the input data. Data path errors are considered to be any errors induced in data values. Such data path errors could arise, for example, as a result of operations performed by an Arithmetic Logic Unit (ALU), a multiplier, a barrel shifter or indeed any part of a data processing system that processes or transmits data values.
Error detection and correction of data is commonly used to maintain data integrity across noisy communication channels and when stored on less-than-reliable storage media. For example, to handle errors in a radio signal transmitted from a base station to a receiver across a communication channel, the base station can send the data together with an error detection code, which the receiver uses to check for errors, and request retransmission of erroneous data. Either in addition to or as an alternative to retransmission, forward error correction (FEC) can be employed, which involves the base station encoding the data with an error-correcting code (e.g. using a Viterbi algorithm) and transmitting the coded message to the receiver. The receiver then decodes the received signal into the “most likely” data. The FEC codes are designed to enable the receiver to avoid misinterpreting the data despite the presence of noise on the communication channel.
It is also known to handle data path errors in data processing systems by adding supplementary hardware to perform duplicate calculations or to rerun part or all of the data processing. However, this approach can be inefficient since it typically involves adding a large degree of redundancy to the data processing system.
Although mechanisms for handling errors within data are routinely provided in data processing systems, most data processing systems are not configured to gracefully recover from control path errors. Control path errors include at least such as errors due to a temporary hardware failure, hardware design errors, timing errors, or errors in control of flow of execution of instructions. Indeed in known systems control path errors are likely to be handled by killing the whole application and restarting the calculation from scratch.
Thus there is a requirement to enable more efficient handling of control path errors.